1. Field of the Invention
This invention relates to networks, and in particular, the invention relates to peer-to-peer communication.
2. Description of Related Art
Peer-to-Peer (P2P) communication has recently become popular. P2P communication allows a computer or a network device to communicate or locate another computer or network device across a network. Currently, computers and other Internet protocol (IP)-based devices can be discovered using the existing Domain Name System (DNS) or using P2P mechanisms like Napster or Gnutella.
These techniques for P2P communication have a number of disadvantages. Napster and DNS are server-based name services. More particularly, the DNS is a distributed Internet directory service. DNS is used mostly to translate between domain names and IP addresses, and to control Internet message delivery. In server-based name services such as DNS and Napster-like P2P systems, the name servers must maintain a large list of computers or network devices that they support. For a large number of names, DNS needs complex software and processing power for name resolutions. It also requires heavy administration and maintenance. Moreover, DNS-like techniques may contain state IP addresses because of the typically high Time-To-Live (TTL) validity in resource records.
In distributed systems like Gnutella, a message is required to traverse through the network one peer at a time and branches out until the result is found in a peer. This traversing generates a lot of network traffic, especially when the amount of messages is large. Since Gnutella employs a flat model, it may not scale well with the network. It also does not maintain any index or cache of other computers and may cause performance degradation when the network grows. In addition, it is difficult and inconvenient to form and name groups of computers in these systems.
Another technique uses bootstrap servers for its operation (e.g., Legion). These bootstrap servers run agents or managers that manage various requests on the P2P network or agents. If a peer needs to discover another peer, it may find it in the directory structure provided by the managers. One disadvantage of this technique is that the bootstrap server is a single point of failure. A failure of the bootstrap server may render the service non-operational.
Therefore, there is a need to have an efficient technique to provide P2P communication.